Unity iOSでのWebSocket
概要
UnityからiOSでのWebSocket用に、使って遊んでみる。
https://github.com/square/SocketRocket
よく見たらSquareだった。あの決済のアレですかね。
HOW TO USE(つかいかた)
悩むところ無かった。
ステップ数的に、
1.DLしてプロジェクトに該当ライブラリ部分を放り込む
2.frameworkを追加
3.ARC設定を調整(必要であれば)
4.Delegateとかをセット
でOK。
DLしてプロジェクトに該当ライブラリ部分を放り込む
下記フォルダをそのままプロジェクトに放り込めばいい感じ。
frameworkを追加
libicucore.dylib
と
Security.framework
を追加。
ARCを調整
SRWebocket.mに
#if !__has_feature(objc_arc)
#error SocketRocket muust be compiled with ARC enabled
#endif
があり、ARC無いとこで動かすなカスが!! 的な様相。ちなみにtypoがry
ファイル単体に、 -fobjc-arc を追加して通過。
Delegate
socketを使用するクラスに対して、
<SRWebSocketDelegate>
と、下記メソッドを追加
- (void)webSocketDidOpen:(SRWebSocket *)webSocket{}
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error{}
- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message{}
- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean{}
コード
単純に、 デリゲートをセットして使えばOK。
_webSocket.delegate = nil;
[_webSocket close];
_webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://localhost:9000/chat"]]];
_webSocket.delegate = self;
self.title = @"Opening Connection...";
[_webSocket open];
以上。